import request from './request'

/**
 * 获取题目列表
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getQuestionList(params) {
  return request({
    url: '/questions/page',
    method: 'get',
    params
  })
}

/**
 * 获取竞赛的题目列表
 * @param {number} contestId 竞赛ID
 * @returns {Promise}
 */
export function getQuestionsByContestId(contestId) {
  return request({
    url: `/contests/${contestId}/questions`,
    method: 'get'
  })
}

/**
 * 获取题目详情
 * @param {number} id 题目ID
 * @returns {Promise}
 */
export function getQuestionDetail(id) {
  return request({
    url: `/questions/${id}`,
    method: 'get'
  })
}

/**
 * 创建题目
 * @param {Object} data 题目信息
 * @returns {Promise}
 */
export function createQuestion(data) {
  return request({
    url: '/questions',
    method: 'post',
    data
  })
}

/**
 * 更新题目
 * @param {number} id 题目ID
 * @param {Object} data 题目信息
 * @returns {Promise}
 */
export function updateQuestion(id, data) {
  return request({
    url: `/questions/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除题目
 * @param {number} id 题目ID
 * @returns {Promise}
 */
export function deleteQuestion(id) {
  return request({
    url: `/questions/${id}`,
    method: 'delete'
  })
}

/**
 * 批量导入题目
 * @param {number} contestId 竞赛ID
 * @param {Array} questions 题目数组
 * @returns {Promise}
 */
export function batchImportQuestions(contestId, questions) {
  return request({
    url: `/questions/import`,
    method: 'post',
    params: { contestId },
    data: questions
  })
}

/**
 * 获取题目类型列表
 * @returns {Promise}
 */
export function getQuestionTypes() {
  return request({
    url: '/questions/types',
    method: 'get'
  })
}

/**
 * 审核题目
 * @param {number} id 题目ID
 * @param {number} status 审核状态 (1: 通过, 2: 拒绝)
 * @param {number} reviewerId 审核人ID
 * @returns {Promise}
 */
export function reviewQuestion(id, status, reviewerId) {
  return request({
    url: `/questions/${id}/review`,
    method: 'put',
    params: { status, reviewerId }
  })
}

/**
 * 下载题目导入模板
 * @returns {Promise}
 */
export function downloadQuestionTemplate() {
  return request({
    url: '/questions/template/download',
    method: 'get',
    responseType: 'blob' // 关键，指定响应类型为blob
  })
}

/**
 * 通过Excel导入题目
 * @param {FormData} formData 包含contestId和file的FormData对象
 * @returns {Promise}
 */
export function importQuestionsByExcel(formData) {
  return request({
    url: '/questions/import/excel',
    method: 'post',
    headers: {
      'Content-Type': 'multipart/form-data' // 关键，设置内容类型为multipart/form-data
    },
    data: formData
  })
} 